
/*
连接：https://leetcode.cn/problems/find-pivot-index/description/

题目：寻找数组的中心下标


从中⼼下标的定义可知，除中⼼下标的元素外，该元素左边的「前缀和」等于该元素右边的「后缀
和」。
▪ 因此，我们可以先预处理出来两个数组，⼀个表⽰前缀和，另⼀个表⽰后缀和。
▪ 然后，我们可以⽤⼀个 for 循环枚举可能的中⼼下标，判断每⼀个位置的「前缀和」以及
「后缀和」，如果⼆者相等，就返回当前下标。

*/

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int n = nums.size();
        vector<int> dp1(n+1);
        vector<int> dp2(n+1);
        for(int i=1;i<n;i++)
        {
            dp1[i] = dp1[i-1]+nums[i-1];
        }
        for(int i=n-2;i>=0;i--)
        {
            dp2[i] = dp2[i+1]+nums[i+1];
        }
        for(int i=0;i<n;i++)
        {
            if(dp1[i]==dp2[i])
                return i;
        }
        return -1;

    }
};